'use strict';

const titbit = require('titbit');
const  {cookie,session} = require('titbit-toolkit');

let token=require('titbit-token');

let tok=new token({
    //token有效期，单位是秒
    expires:30,
    //必须是32位字母数字
    key:'1qaz2wasdfghjklkjhgfdsaqwertyuio',
    //必须是16位字母数字
    iv:'9io08u7y6t5r4e3w'
})


const app=new titbit({
    debug:true
});


//cookie和session并不是一定成对出现的
app.use(new cookie)
    .use(new session);



//中间件 middleware
app.use(async (c,next)=>{
    c.setHeader('x-test-key',`{Math.random()}`);
    await next();
})

app.use(async (c,next)=>{
    if(c.query.say==='12345'){
        await next()
    }else{ 
        c.status(403).send('deny')
    }
},{name:['home'],method:['GET']});

app.get('/',async c=>{
    c.send('ok')
},{name:'home', group:'home'})


app.get('/test',async c=>{ 
     
    c.send('test is ok')
})

// app.get('/:x/:y',async c=>{ 
//     c.setSession('x',c.param.x)
//     c.setSession('y',c.param.y)
//     c.send(c.getSession())
// })

app.get('/token',async c=>{ 
    let tk=tok.make({
        id:'123',
        user:'node',
        level:12
    })
    c.send(tk);
})


app.get('/decrypt/:token',async c=>{ 
    c.send(tok.verify(c.param.token))
})

app.run(1235);









